package beans;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import br.com.sigcoap.interfaces.IBaseEntity;


/**
 * The persistent class for the tb_endereco database table.
 * 
 */
@Entity
@Table(name="tb_endereco")
@NamedQuery(name="Endereco.findAll", query="SELECT e FROM Endereco e")
public class Endereco implements IBaseEntity<Long> {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="id_endereco")
	private Long idEndereco;

	@Column(name="tx_bairro")
	private String txBairro;

	@Column(name="tx_cep")
	private String txCep;

	@Column(name="tx_cidade")
	private String txCidade;

	@Column(name="tx_complemento")
	private String txComplemento;

	@Column(name="tx_logradouro")
	private String txLogradouro;

	@Column(name="tx_uf")
	private String txUf;

	//bi-directional many-to-one association to Aluno
	@OneToMany(mappedBy="tbEndereco")
	private List<Aluno> tbAlunos;

	//bi-directional many-to-one association to Professor
	@OneToMany(mappedBy="tbEndereco")
	private List<Professor> tbProfessors;

	public Endereco() {
	}

	public Long getIdEndereco() {
		return this.idEndereco;
	}

	public void setIdEndereco(Long idEndereco) {
		this.idEndereco = idEndereco;
	}

	public String getTxBairro() {
		return this.txBairro;
	}

	public void setTxBairro(String txBairro) {
		this.txBairro = txBairro;
	}

	public String getTxCep() {
		return this.txCep;
	}

	public void setTxCep(String txCep) {
		this.txCep = txCep;
	}

	public String getTxCidade() {
		return this.txCidade;
	}

	public void setTxCidade(String txCidade) {
		this.txCidade = txCidade;
	}

	public String getTxComplemento() {
		return this.txComplemento;
	}

	public void setTxComplemento(String txComplemento) {
		this.txComplemento = txComplemento;
	}

	public String getTxLogradouro() {
		return this.txLogradouro;
	}

	public void setTxLogradouro(String txLogradouro) {
		this.txLogradouro = txLogradouro;
	}

	public String getTxUf() {
		return this.txUf;
	}

	public void setTxUf(String txUf) {
		this.txUf = txUf;
	}

	public List<Aluno> getTbAlunos() {
		return this.tbAlunos;
	}

	public void setTbAlunos(List<Aluno> tbAlunos) {
		this.tbAlunos = tbAlunos;
	}

	public Aluno addTbAluno(Aluno tbAluno) {
		getTbAlunos().add(tbAluno);
		tbAluno.setTbEndereco(this);

		return tbAluno;
	}

	public Aluno removeTbAluno(Aluno tbAluno) {
		getTbAlunos().remove(tbAluno);
		tbAluno.setTbEndereco(null);

		return tbAluno;
	}

	public List<Professor> getTbProfessors() {
		return this.tbProfessors;
	}

	public void setTbProfessors(List<Professor> tbProfessors) {
		this.tbProfessors = tbProfessors;
	}

	public Professor addTbProfessor(Professor tbProfessor) {
		getTbProfessors().add(tbProfessor);
		tbProfessor.setTbEndereco(this);

		return tbProfessor;
	}

	public Professor removeTbProfessor(Professor tbProfessor) {
		getTbProfessors().remove(tbProfessor);
		tbProfessor.setTbEndereco(null);

		return tbProfessor;
	}

	@Override
	public Long getId() {
		return this.idEndereco;
	}

}